package syn;

import java.util.concurrent.TimeUnit;

/**
 * @author ：黄淼淳
 * @description：在普通方法上加入synchronized,将会锁住这个类的实例，当执行加锁的方法时，这个类的所有加锁的方法都不可以执行，未加锁的方法可以执行
 *       在静态方法上加锁，会锁住这个类，普通方法
 * @date ：2021/12/12 16:38
 */
public class Phone {

    public synchronized void sendEmail(String name){
        try {
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.print(name+":");
        System.out.println("发送邮件");
    }

    public synchronized void sendSMS(String name){
        System.out.print(name+":");
        System.out.println("发送短信");
    }

    public synchronized static void sendHello(String name) {
        try {
            TimeUnit.SECONDS.sleep(10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.print(name+":");
        System.out.println("发送Hello");
    }
}
